class Solution {
public:
    int maxSubArray(vector<int>& nums) {

        int n = nums.size();
        if(n == 1) return nums[0];

        int temp_sum = 0, max_sum=INT_MIN;
        for(int i=0; i<n; i++){

            temp_sum += nums[i];
            max_sum = max(max_sum, temp_sum);
            if(temp_sum < 0){
                temp_sum = 0;
            }
            
        }
        return max_sum;
    }
};